The present disclosure relates generally to virtual computing systems, and more particularly, use of physical Peripheral Component Interconnect (PCI) devices for virtual computing systems.
A host machine (e.g., computer or server) is a computing system that is typically enabled to simultaneously run one or more virtual machines, where each virtual machine may be used by a local or remote client. The host machine allocates a certain amount of execution time from the host's physical processors to each of the virtual processors. Each virtual machine may use the allocated resources to execute applications, including operating systems known as guest operating systems.
A virtual machine is a piece of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system. Each virtual machine running on the physical system may function as a self-contained platform, running its own operating system (OS) and software applications (processes) on one or more virtual processors.
In many cases, a host machine has multiple processors. Some host machines with multiple processors utilize Non-Uniform Memory Access (NUMA) architecture. Such architecture involves multiple NUMA nodes, each NUMA node representing a region of host memory and a subset of the multiple processors. That way, each processor can access the region of memory in its own NUMA node faster than it can access memory in other NUMA nodes. It is desirable to have virtual machines that operate with such architecture in an efficient manner.